In a database environment, multiple physical production disks or other storage devices are typically used to store database data within a single logical database. Often data is added to these physical disks in an uneven manner, such that one or more of the physical disks contain more data than the other physical disks. This can occur for a number of reasons. For example, although a database management system typically stores data evenly across a set of storage devices, when those devices approach capacity, new physical devices are often added to the array of storage devices. Subsequent storage operations continue to distribute data evenly across the devices, with the result that any newly added devices remain at a consistently lower usage than devices which have been a part of the logical database for a longer amount of time (i.e., more storage operations).
To ensure best performance, it can be desirable to spread that data evenly across the physical disks (i.e., to distribute read/write requests across the disks). However, current methods for redistributing data evenly across multiple disks take the database offline to perform the redistribution. This is to alleviate the issue of data in a database file changing between the time it is copied from a first physical disk to when it is written to the second, or target, physical disk to which that data is redistributed. Taking the database offline for redistribution leaves users without the ability to read data from or write data to the database during the time the database is offline.
For these and other reasons, improvements are desirable. Although specific problems have been addressed in this Background, this disclosure is not intended in any way to be limited to solving those specific problems.